Oracle之sqlplus输出到html

您所在的位置:网站首页 spool off oracle Oracle之sqlplus输出到html

Oracle之sqlplus输出到html

2023-08-07 17:44| 来源: 网络整理| 查看: 265

          最近由于工作原因,需要把sqlplus里面SQL结果输出到html里面去,本来想用PLSQL Developer这个工具的,但是想到不是每个环境都是可以安装的,所以就研究了一下。

       通过研究发现原来oracle是有这方面介绍的。在oracle文档中

       SQL*Plus User's Guide and Reference=》7 Generating HTML Reports from SQL*Plus这章就有介绍

       文档中有个例子:

        

         SET MARKUP指明SQL*Plus输出HTML编码格式,必须使用SET MARKUP HTML ON SPOOL ON和SQL*Plus SPOOL命令去创建一个spool文件,并且以HTML格式输出。SET MARKUP习惯称作SQLPLUS -MARKUP命令。

          在sqlplus里面我们输入help set就能看到相关语法

          

         HTML [ON|OFF]:

                指定是否生成HTML格式,ON生成,OFF不生成,默认是OFF。           HEAD text:                 指定HTML中HEAD标签中的内容,默认情况下,文本包括级联样式和标题。           BODY text:                 指定HTML中BODY标签属性

         TABLE text:                设置标签的属性,如BORDER, CELLPADDING, CELLSPACING和WIDTH.。默认情况下,   的WIDTH属性设置为90%,BORDER属性设置为1。

         ENTMAP {ON|OFF}:              指定在SQL * Plus中是否用HTML字符实体如;, ;, ; and ;等替换特殊字符, " and & 。默认    设置是ON。例如:          SPOOL {ON|OFF}:             指定是否在SQL*Plus生成HTML标签 和, 和。默认是OFF。          PRE[FORMAT] {ON|OFF}              指定SQL*Plus生成HTML时输出标签还是HTML表格,默认是OFF,因此默认输出是写HTML表格。

        上面的属性我们常用的也就那几个,下面我给大家做一个我自己的例子,这个例子可以接受控制台的参数,也可以接受sql运行结果当参数。 

 

SET markup html ON spool ON pre off entmap off set term off set heading on set verify off set feedback off set linesize 2000 set pagesize 30000 set long 999999999 set longchunksize 999999 column id format a30 column super_id format a30 column levels format 9999999999 column table_name format a30 column owner format a30 set term on prompt "input schema:" --从控制台接受变量值 define S_SCHEMA=&SCHEMA set term off column dbid new_value spool_dbid --列dbid值给变量spool_dbid column inst_num new_value spool_inst_num select dbid from v$database where rownum = 1; --给dbid赋值 select instance_number as inst_num from v$instance where rownum = 1; column spoolfile_name new_value spoolfile select 'spool_'||(select name from v$database where rownum=1) ||'_'|| (select instance_name from v$instance where rownum=1) ||'_'||to_char(sysdate,'yy-mm-dd_hh24.mi')||'_static' as spoolfile_name from dual; spool &&spoolfile..html prompt

版本 select t.id,t.super_id,t.levels from T1 t; prompt

整个用户有多大 单位GB select sum(bytes)/1024 /1024 /1024 "GB" from dba_segments where owner = '&S_SCHEMA'; prompt

测试 select t.id,t.super_id,t.levels from T1 t; spool off;

         



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3